package homework;

import java.util.Arrays;

public class Day06_cp {
    public static void main(String[] args) {
        maxOfArray();
        say();
        sayHi("法外张三");
        sayHello("狂徒张三",10);

        double n1 = getNum();
        System.out.println(n1);
        float n2 = getNum();
        System.out.println(n2);

        double n3 = plus(100,3.3);
        System.out.println(n3);
        float n4 = (float) plus(100,3.5);
        System.out.println(n4);
        int n5 =(int)plus(100,3.8);
        System.out.println(n5);

        int[] arr = testArray(10,5);
        System.out.println("长度是："+arr.length);
        System.out.println(Arrays.toString(arr));

        int[] arr1 = testArray(10,30);
        System.out.println("第一个元素是"+arr1[0]);
        System.out.println(Arrays.toString(arr1));


    }

    /**
     * MaxOfArray求数组元素最大值并放在最后一个元素的下一个位置
     *
     *    要求：声明整型数组并填充随机数据，找到最大值，将数组扩容并将最大值放末尾
     */
    public static void maxOfArray(){
        int[] arr = createArray(15,99);
        System.out.println(Arrays.toString(arr));
        if(arr!=null && arr.length>0){
            int max = arr[0];
            for(int i=1;i<arr.length;i++){
                if(arr[i]>max){
                    max = arr[i];
                }
            }
            System.out.println("最大值为："+max);
            arr = Arrays.copyOf(arr,arr.length+1);
            arr[arr.length-1] = max;

            System.out.println(Arrays.toString(arr));
        }
    }

    /**
     * 方法的练习：
     *
     *    要求：
     *
     *    - 定义say()无参无返回值方法，调用测试
     *    - 定义sayHi()有一个参无返回值方法，调用测试
     *    - 定义sayHello()有两个参无返回值的方法，调用测试
     *    - 定义getNum()无参有返回值方法，演示return的用法，调用测试
     *    - 定义plus()两个参有返回值方法，调用测试
     *    - 定义testArray()用于生成整型数组填充随机数并返回数组，调用测试
     */

    public static void say(){
        System.out.println("say调用");
    }

    public static void sayHi(String name){
        System.out.println("sayHi正在输出"+name);
    }

    public static void sayHello(String name,int num){
        System.out.println("sayHello正在输出"+name+"并打算输出"+num+"次");
    }

    public static float getNum(){
        //return 3.33;//报错缺少F、f
        return 3.33F;
    }

    public static double plus(int num1,double num2){
        double num = num1 + num2;
        return num;
    }

    public static int[] testArray(int len,int max){
        return createArray(len,max);
    }


    /**
     *
     * @param length 创建数组长度
     * @param max 数组随机数的最大值0~max
     * @return
     */
    public static int[] createArray(int length,int max){
        int[] arr = new int[length];
        for(int i=0;i<arr.length;i++){
            arr[i] = (int)(Math.random()*(max+1));
        }
        return arr;
    }
}
